import { marked } from 'marked'
import hljs from 'highlight.js/lib/core'
export const marker = (note) => {
  let rendererMD = new marked.Renderer()
  marked.setOptions({
    renderer: rendererMD,
    highlight: function (code) {
      return hljs.highlightAuto(code).value
    },
    gfm: true, //默认为true。 允许 Git Hub标准的markdown.
    tables: true, //默认为true。 允许支持表格语法。该选项要求 gfm 为true。
    breaks: true, //默认为false。 允许回车换行。该选项要求 gfm 为true。
    pedantic: false, //默认为false。 尽可能地兼容 markdown.pl的晦涩部分。不纠正原始模型任何的不良行为和错误。
    smartLists: true,
    smartypants: true, //使用更为时髦的标点，比如在引用语法中加入破折号。
    langPrefix: 'hljs language-'
  })
  return marked(note)
}

import javascript from 'highlight.js/lib/languages/javascript'
import html from 'highlight.js/lib/languages/xml'
import css from 'highlight.js/lib/languages/css'
import java from 'highlight.js/lib/languages/java'
import sql from 'highlight.js/lib/languages/sql'
import xml from 'highlight.js/lib/languages/xml'
import yaml from 'highlight.js/lib/languages/yaml'
import shell from 'highlight.js/lib/languages/shell'
import typescript from 'highlight.js/lib/languages/typescript'
import less from 'highlight.js/lib/languages/less'
import json from 'highlight.js/lib/languages/json'
// 定义要注册的语言列表
const languages = {
  javascript,
  html,
  css,
  java,
  sql,
  xml,
  yaml,
  shell,
  typescript,
  less,
  json
}
// 循环注册语言
Object.entries(languages).forEach(([name, lang]) => {
  hljs.registerLanguage(name, lang)
})

export default hljs
